
import project.MQFontChooser;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
 * 字体选择器测试类
 * @author 米强
 *
 */
public class TestMains extends JFrame {
    private JTextArea text = null;
    private JButton button = null;
    static {
        try {
            // 请配合Look And Feel使用本组件，可得到更好的效果
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (UnsupportedLookAndFeelException e) {
            e.printStackTrace();
        }
    }

    public TestMains() {
        text = new JTextArea("五星红旗迎风飘扬，/n胜利歌声多么响亮；/n歌唱我们亲爱的祖国，/n从今走向繁荣富强。/n歌唱我们亲爱的祖国，/n从今走向繁荣富强。/n/n越过高山，/n越过平原，/n跨过奔腾的黄河长江；/n宽广美丽的土地，/n是我们亲爱的家乡，/n英雄的人民站起来了！/n我们团结友爱坚强如钢。");
        System.out.println(text.getFont());
        button = new JButton("设置字体");
        // 给按钮添加动作事件监听
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // 构造字体选择器，参数字体为预设值
                MQFontChooser fontChooser = new MQFontChooser(text.getFont());
                // 打开一个字体选择器窗口，参数为父级所有者窗体。返回一个整型，代表设置字体时按下了确定或是取消，可参考MQFontChooser.APPROVE_OPTION和MQFontChooser.CANCEL_OPTION
                int returnValue = fontChooser.showFontDialog(TestMains.this);
                // 如果按下的是确定按钮
                if (returnValue == MQFontChooser.APPROVE_OPTION) {
                    // 获取选择的字体
                    Font font = fontChooser.getSelectFont();
                    // 将字体设置到JTextArea中
                    text.setFont(font);
                }
            }
        });
        getContentPane().add(new JScrollPane(text));
        getContentPane().add(button, BorderLayout.SOUTH);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500, 300);
        setLocationRelativeTo(null);
        setVisible(true);
    }
    public static void main(String[] args) {
        new TestMains();
    }
}